package com.system.cacheCenterBackend.service;

import java.util.Set;

/**
 * Set类型缓存服务接口
 */
public interface SetCacheService {

    /**
     * 向集合添加元素
     *
     * @param key   键
     * @param value 值
     * @return 添加的元素数量
     */
    Long setAdd(String key, String... value);

    /**
     * 从集合移除元素
     *
     * @param key   键
     * @param value 值
     * @return 移除的元素数量
     */
    Long setRemove(String key, String value);

    /**
     * 获取集合所有成员
     *
     * @param key 键
     * @return 成员集合
     */
    Set<String> setMembers(String key);

    /**
     * 检查元素是否为集合成员
     *
     * @param key   键
     * @param value 值
     * @return 是否为成员
     */
    Boolean setIsMember(String key, String value);

    /**
     * 获取集合大小
     *
     * @param key 键
     * @return 集合大小
     */
    Long setSize(String key);

    /**
     * 获取Set缓存值
     *
     * @param key 键
     * @return Set值
     */
    Set<String> get(String key);

    /**
     * 设置过期时间
     *
     * @param key     键
     * @param timeout 过期时间（秒）
     * @return 是否设置成功
     */
    boolean expire(String key, long timeout);

    /**
     * 删除Set缓存
     *
     * @param key 键
     * @return 是否删除成功
     */
    boolean delete(String key);
}